#ifndef _LIFO_H
#define _LIFO_H

#include "llist.h"

typedef struct {
	LLIST *start;
	LLIST *end;
	u32 numel;
} LIFO;

inline LIFO *   lf_new			();
bool	        lf_is_valid		(LIFO *);
void	        lf_push	    	(LIFO *, void *);
inline u32		lf_get_num_el	(LIFO *);
void *	        lf_pop  		(LIFO *);
void	        lf_free			(LIFO *);
void            lf_free_handler (LIFO *, datahandler);

#endif
